#ifndef DEVICECHANNEL_H
#define DEVICECHANNEL_H

#include <QObject>
#include <QColor>
#include <QVector>

class DeviceSubChannel;

class DeviceChannel : public QObject
{
    Q_OBJECT
public:
    explicit DeviceChannel(QObject *parent = nullptr);
    ~DeviceChannel();

    // Getter 和 Setter 方法
    QString channelName() const;
    void setChannelName(const QString &name);

    QString amplifierName() const;
    void setAmplifierName(const QString &name);

    // 其他 Getter 和 Setter 方法...

    // 添加子通道
    void addSubChannel(DeviceSubChannel *subChannel);

    // 获取子通道列表
    const QVector<DeviceSubChannel*>& subChannels() const;

public:
    QString m_strChannelName;
    QString m_strAmplifierName;
    double m_dlbMeasureRangeMin;
    double m_dlbMeasureRangeMax;
    QString m_strChannelNikeName;
    QString m_strUnit;
    int m_nChannelMode;
    int m_nInputConfiguration;
    double m_dblMaximunValue;
    double m_dblMinimunValue;
    int m_nSampleRate;
    int m_nToReadSampleCount;
    int m_nCouple;
    bool m_bEnableIEPE;
    QColor m_cColor;
    bool m_bEnabled;
    QVector<DeviceSubChannel*> m_vecChildren; // 子通道列表
};

#endif // DEVICECHANNEL_H
